home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
MATHEMAT
/
STATISTI
/
0850B.ZIP
/
SET2.ARC
/
CORR-DIS.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1979-12-31
|
3KB
|
113 lines
(*LINEAR CORRELATION*)
VAR SWITCH4,DF,TEMP,Y,NUMSAMPS,I,SWITCH:INTEGER;
COEFF,XCOOR,YCOOR,SUMX,SUMY,SUMXSQR,SUMYSQR, SUMXTIMESY,
A1,A2,A3,A4,L,X,FACTOR1,FACTOR2,RIGHTTAIL,TVALUE,CRIT52,CRIT51,CRIT12,CRIT11:REAL;
SWITCH3,C:CHAR;
SWITCH2,LESSTHANONE:BOOLEAN;
{$I B:REALRAIS}
{$I B:INTRAISE}
PROCEDURE FINDCRITICALVALUES (DEGFREE:INTEGER);
VAR TEMP1,TEMP2:REAL;
PROCEDURE VALS(C52,C51,C12,C11:REAL);
BEGIN
CRIT52:=C52;
CRIT51:=C51;
CRIT12:=C12;
CRIT11:=C11;
END;
PROCEDURE LOOKUP (DF:INTEGER);
BEGIN
CASE DF OF
1: VALS(0.988, 0.997, 0.9995, 0.9999);
2: VALS(0.900, 0.950, 0.980, 0.990);
3: VALS(0.805, 0.878, 0.934, 0.959);
4: VALS(0.729, 0.811, 0.882, 0.917);
5: VALS(0.669, 0.754, 0.833, 0.874);
6: VALS(0.622, 0.707, 0.789, 0.824);
7: VALS(0.582, 0.666, 0.750, 0.798);
8: VALS(0.549, 0.632, 0.716, 0.765);
9: VALS(0.512, 0.602, 0.685, 0.735);
10: VALS(0.497, 0.576, 0.658, 0.708);
END;
END;
BEGIN
LOOKUP (DEGFREE);
IF NUMSAMPS<12 THEN BEGIN
WRITE ('THE CRITICAL VALUE AT .05 (ONE TAILED) IS: ');
WRITELN (CRIT52:5:4);
WRITE ('THE CRITICAL VALUE AT .05 (TWO TAILED) IS: ');
WRITELN (CRIT51:5:4);
WRITE ('THE CRITICAL VALUE AT .01 (ONE TAILED) IS: ');
WRITELN (CRIT12:5:4);
WRITE ('THE CRITICAL VALUE AT .01 (TWO TAILED) IS: ');
WRITELN (CRIT11:5:4);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'THE CRITICAL VALUE AT .05 (ONE TAILED) IS: ',CRIT52:5:4);
WRITELN (LST,'THE CRITICAL VALUE AT .05 (TWO TAILED) IS: ',CRIT51:5:4);
WRITELN (LST,'THE CRITICAL VALUE AT .01 (ONE TAILED) IS: ',CRIT12:5:4);
WRITELN (LST,'THE CRITICAL VALUE AT .01 (TWO TAILED) IS: ',CRIT11:5:4);
END;
END
ELSE BEGIN
TVALUE:=(COEFF*SQRT(NUMSAMPS-2))/SQRT(1-SQR(COEFF));
A1:=0.196854;
A2:=0.115194;
A3:=0.000344;
A4:=0.019527;
Y:=1;
TVALUE:=SQR(TVALUE);
DF:=NUMSAMPS-2;
LESSTHANONE:=FALSE;
IF TVALUE<1.0 THEN BEGIN
TVALUE:=1/TVALUE;
TEMP:=Y;
Y:=DF;
DF:=TEMP;
LESSTHANONE:=TRUE;
END;
FACTOR1:=2/(9 * Y);
FACTOR2:=2/(9 * DF);
L:=ABS(REALRAIS(TVALUE,0.333333)*(1-FACTOR2)-1+FACTOR1)/
SQRT((FACTOR1+REALRAIS(TVALUE,0.666667)*FACTOR2));
IF DF<4 THEN L:=L*(1+0.08*INTRAISE(DF,3));
X:=0.25/INTRAISE((1+L*(A1+L*(A2+L*(A3+L*A4)))),4);
IF LESSTHANONE THEN RIGHTTAIL:=1-X
ELSE RIGHTTAIL:=X;
WRITELN;
WRITELN ('SIGNIFICANCE = ',RIGHTTAIL:7:6);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'SIGNIFICANCE = ',RIGHTTAIL:7:6);
END;
END;
END;
BEGIN
WRITELN ('CORRELATION COEFFICIENT SIGNIFICANCE');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'CORRELATION COEFFICIENT SIGNIFICANCE');
END;
WRITELN;
REPEAT
WRITE ('CORRELATION COEFFICIENT = ');
READLN (COEFF);
WRITE ('NUMBER OF PAIRS: ');
READLN (NUMSAMPS);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'CORRELATION COEFFICIENT = ',COEFF);
WRITELN (LST,'NUMBER OF PAIRS: ',NUMSAMPS);
END;
FINDCRITICALVALUES (NUMSAMPS-1);
WRITE ('DO YOU WANT ANOTHER RUN, (Y/N): ');
READLN (C);
WHILE NOT (C IN ['Y','y','n','N']) DO
BEGIN
WRITE ('TYPE Y FOR YES, OR N FOR NO: ');
READLN (C)
END;
SWITCH2:=C IN ['N','n'];
UNTIL SWITCH2
END.